package pe.bf.extranet.dao;

import java.math.BigInteger;
import java.util.List;

import pe.bf.domain.bean.Empleado;
import pe.bf.domain.bean.SolicitudCreacion;
import pe.bf.domain.exceptions.DomainException;

public interface SolicitudCreacionDAO {

	/**
	 * 
	 * @param solicitudCreacion
	 * @throws DomainException
	 */
	public List<String> createSolicitudCreacion(SolicitudCreacion solicitudCreacion)
			throws DomainException;

	/**
	 * 
	 * @param solicitudCreacion
	 * @throws DomainException
	 */
	public List<String> createDetalleSolicitudCreacion(List<Empleado> detalle,long id,long empresa)
			throws DomainException;
	
	/**
	 * 
	 * @param solicitudCreacion
	 * @throws DomainException
	 */
	public void actualizarSolicitudCreacion(SolicitudCreacion solicitudCreacion)
			throws DomainException;

	/**
	 * 
	 * @param solicitudCreacion
	 * @throws DomainException
	 */
	public void eliminarSolicitudCreacion(SolicitudCreacion solicitudCreacion)
			throws DomainException;

	/**
	 * 
	 * @return
	 * @throws DomainException
	 */
	public List<SolicitudCreacion> listarSolicitudCreacion()
			throws DomainException;

	/**
	 * 
	 * @param codigoEmpresa
	 * @return
	 * @throws DomainException
	 */
	public List<SolicitudCreacion> listarSolicitudCreacionPorEmpresa(
			BigInteger codigoEmpresa) throws DomainException;

	/**
	 * 
	 * @param codigoEmpresa
	 * @param codigoSolicitudCreacion
	 * @return
	 * @throws DomainException
	 */
	public List<Empleado> listarDetalleSolicitudCreacion(
			BigInteger codigoEmpresa, BigInteger codigoSolicitudCreacion)
			throws DomainException;

}
